<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 
    data与props的区别：
      1. 两者都是响应式数据
      2. data 是组件自身的数据，组件内部可以任意的操作
      3. props 是父组件传递过来的数据，需要遵循单向数据流的规则，只能用不能改。

    如何理解单向数据流
      类似于水流只能从高处往低处流，不能反过来。

   -->

    <div id="app">
      <hello :num="count"></hello>
    </div>

    <script src="../lib/vue.js"></script>
    <script>
      Vue.component("hello", {
        template: `
          <div>
            <p>{{ num }}</p>
            <button @click="fn1">修改</button>  
          </div>
        `,
        data() {
          return {
            num: "张胜男",
          };
        },
        props: ["num"],
        methods: {
          fn1() {
            // 直接修改 num
            this.num = 20;
          },
        },
      });

      const vm = new Vue({
        el: "#app",

        data: {
          count: 10,
        },

        mounted() {
          setInterval(() => {
            this.count++;
          }, 1000);
        },
      });
    </script>
  </body>
</html>
